package com.cbd.service;

import java.util.List;

import com.cbd.pojo.Complaintrecord;
import com.cbd.pojo.Purpose;
import com.cbd.pojo.RentInfo;
import com.cbd.pojo.Renter;
import com.cbd.pojo.ShowRenter;

public interface RenterService {
	public int regist(Renter renter);
	/**通过用户ID 找到抢租客renter
	 * @param userID 用户ID 放在隐藏字段中的userID
	 * @return 抢租客renter
	 */
	public Renter findRenterByUserID(int userID);
	
	/**通过抢租客的信息  修改抢租客
	 * @param renter 抢租客信息
	 * @return 受影响行数
	 */
	public int updateRenterByRenter(Renter renter);
	
	/**通过用户ID 得到所有的抢租记录
	 * @param userID 抢租客ID
	 * @return list(list(String))
	 */
	public List<Object[]> findAllRecordByUserID(int userID);
	
	/**通过用户ID 当前页数  每页显示数据条数  得到这一页的所有记录
	 * @param userID 用户ID 
	 * @param pageSize 每页显示的数据条数
	 * @param currentPage 当前页码
	 * @return 显示相关的list<Object[]>
	 */
	public List<Object[]> findOnePageRecordByUserID(int userID,int pageSize,int currentPage);

	public List<ShowRenter> showRenter(int page);

	
	/**
	 * <p>说明：通过用户ID 得到 车位地址编号 开始时间  结束时间 包租婆用户名  的Object数组</P>
	 * @param recordID 记录ID
	 * @return Object[]
	 * @author 罗旭<br>
	 */
	public Object[] findRecordByRecordID(int recordID);
	
	/**
	 * <p>说明：增加一条投诉记录</P>
	 * <P>完整的一个Complaintrecord</P>
	 * @param complaintrecord 投诉记录
	 * @return int 受影响行数
	 * @author 罗旭<br>
	 */
	public int addComplaintrecord(Complaintrecord complaintrecord);
	/**
	 * 通过租客的ID，改变他的信誉度，即将完成交易+1
	 * @param renterID
	 */
	public void updateRpById(int renterID);
	
	/**
	 * <p>说明：根据租车开始时间和结束时间来找到满足条件的车位</p>
	 * <p>由于页面上需要显示  得到 车位地址编号 开始时间  结束时间 包租婆用户名 等</p>
	 * @param startTime 开始时间
	 * @param endTime	结束时间
	 * @param userID  当前用户
	 * @return List<Object[]>  
	 * @author 罗旭<br>
	 */
	public List<Object[]> findCarPortsByTimes(String startTime,String endTime,int userID);
	
	/**
	 * <p>说明：根据出租信息的ID得到该条出租信息</p>
	 * @param rentInfoID 出租信息
	 * @return RentInfo
	 * @author 罗旭<br>
	 */
	public RentInfo findRentInfoByRentInfoID(int rentInfoID);
	
	/**
	 * <p>说明：增加一条意向</P>
	 * <p>参数意向中包含了  留言信息  抢租客  出租详情</P>
	 * @param purpose 
	 * @return ID
	 * @author 罗旭<br>
	 */
	public int addPurpose(Purpose purpose);
	
	/**
	 * <p>说明：通过当前页和页面上输入的开始时间和结束时间 获得一页车位数据</p>
	 * <p>用途：预定车位时，显示一页车位数据</p>
	 * @param currentPage 当前页
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param userID 用户ID
	 * @return 页面显示的数据
	 * @author 罗旭 <br>
	 * @date 2016年11月5日 下午3:46:54
	 */
	public List<Object[]> findOnePageCarPortByTime(int currentPage ,String startTime ,
			 String endTime , int userID);
	
	/**
	 * <p>说明：通过记录ID在投诉记录中确定是否投诉过</p>
	 * <p>用途：抢租客投诉一次之后，不能再投诉</p>
	 * @param recordID
	 * @return int 1:该条记录已经投诉过   0：还未投诉过
	 * @author 罗旭<br>
	 * @date 2016年11月10日 上午11:24:09
	 */
	public int findRecordIDFromComplaintByRecordID(int recordID);
}
